;->s.srasm
;
;


R0 RN 0
R1 RN 1
R2 RN 2
R3 RN 3
R4 RN 4
R5 RN 5
R6 RN 6
R7 RN 7
R8 RN 8
R9 RN 9
R10 RN 10
R11 RN 11
R12 RN 12
R13 RN 13
R14 RN 14
R15 RN 15
PC  RN 15


a1 RN 0
a2 RN 1
a3 RN 2
a4 RN 3
v1 RN 4
v2 RN 5
v3 RN 6
v4 RN 7
v5 RN 8
v6 RN 9
sl RN 10
fp RN 11
ip RN 12
sp RN 13
lk RN 14
lr RN 14
pc RN 15

f0 FN 0
f1 FN 1
f2 FN 2
f3 FN 3
f4 FN 4
f5 FN 5
f6 FN 6
f7 FN 7







osbyte * 6
OS_Byte * 6
osvduv * 49
osword * 7
xoffch * 19
xonch  * 17
OS_EnterOS * &16
SVC_Mode * 3
OS_SerialOp * &57


 AREA  SRASM, REL, CODE


; ****************************************************************************



getbytelo

 MOV   ip,sp
 STMFD sp!,{fp,ip,lk,pc}
 SUB   fp,ip,#4

 MOV   a1, #145  
 MOV   a2, #1
 SWI   osbyte
               
 MOVCC a1, a3
 MOVCS a1, #0
 SUBCS a1, a1, #1

 LDMEA fp,{fp,sp,pc}



; R0== byte to be sent 

outbytenb

 MOV   ip,sp
 STMFD sp!,{fp,ip,lk,pc}
 SUB   fp,ip,#4

 MOV   a2,a1
 MOV   a1,#3             ; byte to be sent
 
 SWI   OS_SerialOp

 MOVCS a1, #0
 SUBCS a1, a1, #1

 LDMEA fp,{fp,sp,pc}


 EXPORT getbytelo
 EXPORT outbytenb

 END
